home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / src / linux-headers-2.6.28-15 / arch / parisc / include / asm / thread_info.h < prev    next >
Encoding:
C/C++ Source or Header  |  2008-12-24  |  2.4 KB  |  77 lines

  1. #ifndef _ASM_PARISC_THREAD_INFO_H
  2. #define _ASM_PARISC_THREAD_INFO_H
  3.  
  4. #ifdef __KERNEL__
  5.  
  6. #ifndef __ASSEMBLY__
  7. #include <asm/processor.h>
  8.  
  9. struct thread_info {
  10.     struct task_struct *task;    /* main task structure */
  11.     struct exec_domain *exec_domain;/* execution domain */
  12.     unsigned long flags;        /* thread_info flags (see TIF_*) */
  13.     mm_segment_t addr_limit;    /* user-level address space limit */
  14.     __u32 cpu;            /* current CPU */
  15.     int preempt_count;        /* 0=premptable, <0=BUG; will also serve as bh-counter */
  16.     struct restart_block restart_block;
  17. };
  18.  
  19. #define INIT_THREAD_INFO(tsk)            \
  20. {                        \
  21.     .task        = &tsk,            \
  22.     .exec_domain    = &default_exec_domain,    \
  23.     .flags        = 0,            \
  24.     .cpu        = 0,            \
  25.     .addr_limit    = KERNEL_DS,        \
  26.     .preempt_count    = 1,            \
  27.       .restart_block    = {            \
  28.         .fn = do_no_restart_syscall    \
  29.     }                    \
  30. }
  31.  
  32. #define init_thread_info        (init_thread_union.thread_info)
  33. #define init_stack              (init_thread_union.stack)
  34.  
  35. /* thread information allocation */
  36.  
  37. #define THREAD_SIZE_ORDER            2
  38. /* Be sure to hunt all references to this down when you change the size of
  39.  * the kernel stack */
  40. #define THREAD_SIZE             (PAGE_SIZE << THREAD_SIZE_ORDER)
  41. #define THREAD_SHIFT            (PAGE_SHIFT + THREAD_SIZE_ORDER)
  42.  
  43. /* how to get the thread information struct from C */
  44. #define current_thread_info()    ((struct thread_info *)mfctl(30))
  45.  
  46. #endif /* !__ASSEMBLY */
  47.  
  48. #define PREEMPT_ACTIVE_BIT    28
  49. #define PREEMPT_ACTIVE        (1 << PREEMPT_ACTIVE_BIT)
  50.  
  51. /*
  52.  * thread information flags
  53.  */
  54. #define TIF_SYSCALL_TRACE    0    /* syscall trace active */
  55. #define TIF_SIGPENDING        1    /* signal pending */
  56. #define TIF_NEED_RESCHED    2    /* rescheduling necessary */
  57. #define TIF_POLLING_NRFLAG    3    /* true if poll_idle() is polling TIF_NEED_RESCHED */
  58. #define TIF_32BIT               4       /* 32 bit binary */
  59. #define TIF_MEMDIE        5
  60. #define TIF_RESTORE_SIGMASK    6    /* restore saved signal mask */
  61. #define TIF_FREEZE        7    /* is freezing for suspend */
  62.  
  63. #define _TIF_SYSCALL_TRACE    (1 << TIF_SYSCALL_TRACE)
  64. #define _TIF_SIGPENDING        (1 << TIF_SIGPENDING)
  65. #define _TIF_NEED_RESCHED    (1 << TIF_NEED_RESCHED)
  66. #define _TIF_POLLING_NRFLAG    (1 << TIF_POLLING_NRFLAG)
  67. #define _TIF_32BIT        (1 << TIF_32BIT)
  68. #define _TIF_RESTORE_SIGMASK    (1 << TIF_RESTORE_SIGMASK)
  69. #define _TIF_FREEZE        (1 << TIF_FREEZE)
  70.  
  71. #define _TIF_USER_WORK_MASK     (_TIF_SIGPENDING | \
  72.                                  _TIF_NEED_RESCHED | _TIF_RESTORE_SIGMASK)
  73.  
  74. #endif /* __KERNEL__ */
  75.  
  76. #endif /* _ASM_PARISC_THREAD_INFO_H */
  77.